package com.kgc.sbt.api;

import com.kgc.sbt.domain.Cart;
import com.kgc.sbt.domain.CartFrom;
import com.kgc.sbt.domain.Goods;
import com.kgc.sbt.domain.User;

import java.util.List;

/**
 * Created on 2021/6/22.
 * <p>
 * Author: a123
 * <p>
 * Description:
 */
public interface CartApi {

    /**
     * @author: zzw
     * @date: 2021/6/22
     * @return
     * @description: 查询购物车信息
     */
    List<Cart> selectById(Integer userId);

    /**
     * @author: zzw
     * @date: 2021/6/22
     * @return
     * @description: 根据id查询商品信息
     */
    Goods selectGoodsById(Integer id);

    /**
     * @author: zzw
     * @date: 2021/6/22
     * @return
     * @description: 根据id查询用户信息
     */
    User selectUserById(Integer id);

    /**
     * @author: zzw
     * @date: 2021/6/22
     * @return
     * @description: 添加商品到购物车
     */
    boolean insertCart(Integer userId, Integer goodsId, Integer number);

    /**
     * @author : zhukang
     * @date : 2021-06-19
     * @return :
     * @description : 校验订单是否生成成功
     */
    boolean isTradeOrderCreated(String tradeOrderNo);

    /**
     * @author: zzw
     * @date: 2021/6/23
     * @return
     * @description: 根据id查询购物车信息
     */
    List<Cart> selectCartByIds(Integer[] ids);

    /**
     * Created on 2021/6/24
     * Author: GongMingJie
     * @param
     * @return
     * Description: 删除购物车
     */
    boolean delCartByIds(Integer[] ids);

    /**
     * @author: zzw
     * @date: 2021/6/26
     * @return
     * @description: 通过用户查询购物车的信息
     */
    List<CartFrom> selectCartByUserId(Integer userId);

    /**
     * @author: zzw
     * @date: 2021/6/28
     * @return
     * @description: 根据商品id和用户id增加商品的数量
     */
    boolean updateCartNumberAdd(Integer userId, Integer goodsId, Integer numberAdd);

    /**
     * @author: zzw
     * @date: 2021/6/28
     * @return
     * @description: 根据商品id和用户id减少商品的数量
     */
    boolean updateCartNumberDel(Integer userId, Integer goodsId, Integer numberDel);

    /**
     * @author: zzw
     * @date: 2021/6/28
     * @return
     * @description: 根据商品id和用户id查询购物车的商品信息
     */
    Cart selectCartByUserIdAndGoodsId(Integer userId, Integer goodsId);
}
